Virtual desktops are becoming more and more commonplace in today's work environments. The security of having a remotely stored desktop, ability to access the desktop from any location and on various devices, centralized management, the efficient use of hardware resources, among other benefits made possible by virtual desktop infrastructure (VDI) is a large benefit for many organizations. Hence, the concept of using VDI to provide users with virtual desktops in the cloud is appealing to a growing number of enterprises.
In a conventional VDI environment, each user in an enterprise is provisioned a virtual desktop and is allowed to access their virtual desktop over a remote network connection, such as a WAN connection. The virtual desktops are typically hosted on servers that reside in a data center of the enterprise (or a third party service provider), and each host server may execute multiple virtual desktops. Users can utilize a client device to remotely log into their individual virtual desktop and all of the application execution takes place on the remote host server which is linked to the local client device over a network using a remote display protocol, such as remote desktop protocol (RDP), PC-over-IP protocol (PCoIP), virtual network computing (VNC) protocol, or the like. Using the remote desktop protocol, the user can interact with applications of the virtual desktop, which are running on the remote host server, with only the display, keyboard, and mouse information communicated with the local client device. A common implementation of this approach is to host multiple desktop operating system instances on separate virtual machines deployed on a server hardware platform running a hypervisor.
However, successful deployment of VDI in an enterprise poses several challenges. For example, VDI must provide cost-effective dedicated desktops, in which users still have the diversity and personalization they are used to (e.g. installing custom applications and storing a large number of documents), while reducing the cost of storage and computing resources required for handling the user workloads. One challenge in today's systems is that the underlying storage in VDI must be of large capacity and high performance, as it contains all operating system (OS) files, applications, and user data, and must respond quickly to a massive amount of input and output (JO) requests from various virtual desktops running from the storage.
Also, IT needs to be able to continue supporting users with physical devices, co-existing with the virtual desktops. Furthermore, the system should enable fast transition from the physical desktop to the virtual desktop (e.g. for business continuity in case of disaster). Today, migrating existing full physical desktops into the cloud to enable a virtual desktop is a long and complicated process that requires copying the entire contents of each physical desktop into the corresponding virtual disks, which also consumes a lot of storage space. In addition, maintaining synchronization between the virtual desktop and the physical desktop for when the user returns to using the physical desktop is a significant problem. Further, IT needs to be able to provision and update operating systems, applications, and perform other IT tasks in the same way both for physical and for virtual desktops, ideally without having to duplicate the effort.
Meeting these challenges traditionally required expensive high-end storage devices storing full block-level desktop images and extensive IT involvement. The common approach for meeting these requirements is to dedicate a virtual machine per user, with varying solutions for storing the various desktop image components (the operating system, IT-provisioned applications, user-installed applications, user data, and settings). For example, a simple storage solution that is widely used is to have a “full clone” of a virtual machine disk for every virtual desktop. Each full clone contains an entire block-level desktop image. However, this solution wastes a lot of storage, as the entire operating system and all IT- and user-installed applications are duplicated across many virtual machine disks. Some solutions, such as “linked clones,” reduce storage needs to some extent by allowing multiple VMs to share a base or “parent” virtual disk that contains the core operating system (OS), while changes of each VM are written to a separate delta disk for each VM. This enables de-duplicating the core OS files, however, user data, installed applications and customized settings are not de-duplicated. Furthermore, with linked clone technology, each virtual delta disk consumes increasingly more storage over time as blocks are being written to the delta disk, which in turn requires either a periodic “refresh” operation that discards all user-installed apps or a resource-intensive garbage collection operation for reclaiming unused blocks.
A more efficient approach is desirable for managing virtual desktop infrastructure in enterprise network environments.